// 设置默认信息
$.validator.setDefaults({
    submitHandler: function (val) {
        oktipsoption = {
            type: 0,
            url: $('.formsub').attr('url')
        };
        ajaxform.init(oktipsoption, '.formsub');
        ajaxform.submit();
    },
    errorPlacement: function (error, element) {
        element.parents('.l_b').append(error);
        element.parents('.l_b').find('.file_box').addClass('error');
    }
});


// 去所有空格
function del(str) {
    return str.split(" ").join("")
}

$(document).ready(function () {
    var regfrom = $("#regfrom");
    // 密码，昵称去空格
    regfrom.on('keyup', '#repassword,#username', function (event) {
        var myThis = $(this);
        myThis.val(del(myThis.val()));
    });

    $(".l_b input").focus(function () {
        $(this).addClass('u-ipt-active');
        $(this).removeClass('error');
        $(this).next('.error').hide();
    });


    $(".l_b input").blur(function () {
        $(this).removeClass('u-ipt-active');
        if ($(this).parents('.l_b').find('label.error').is(":visible")) {
            $(this).addClass('error');
        } else {
            $(this).removeClass('error');
            $(this).removeClass('u-ipt-active');
            $(this).parent('.file_box').removeClass('error');
        }
    });

    $("#license").change(function () {
        var filepath = $(this).val();
        var fileArr = filepath.split("\\");
        var fileTArr = fileArr[fileArr.length - 1].toLowerCase().split(".");
        $(".file_name").text(fileTArr);

    })

    $("#license").blur(function () {
        if ($(this).parents('.l_b').find('label.error').is(":visible")) {
            $(this).parent('.file_box').addClass('u-ipt-error');
        } else {
            $(this).parent('.file_box').removeClass('u-ipt-error');
            $(this).parent('.file_box').removeClass('u-ipt-active');
        }
    });

    // 验证昵称
    $.validator.addMethod("chkusername", function (value) {
        // var userReg = /^[\u4e00-\u9fa5a-zA-Z0-9]{1,12}$/; 
        var userReg = /^[\s\S]{1,12}$/;
        return userReg.test(value);
    });

    // 验证手机号码
    $.validator.addMethod("chkphone", function (value) {
        var phoneReg = /^1\d{10}$/;
        return phoneReg.test(value);
    });

    // 验证短信验证码
    $.validator.addMethod("chkyzcode", function (value) {
        var yzcodeReg = /^\d{6}$/;
        return yzcodeReg.test(value);
    });

    // $.validator.addMethod("yzcodeck", function(value) {
    // 	var ck = $.cookie('phoneverify'); 
    // 	if($("#yzcode").val()==ck){
    // 		return true;
    // 	}
    // });

    // 验证邮箱验证码
    $.validator.addMethod("chkemailcode", function (value) {
        var emailcodeReg = /^\d{6}$/;
        return emailcodeReg.test(value);
    });

    // $.validator.addMethod("emailcodeck", function(value) {
    // 	var ck = $.cookie('emailverify'); 
    // 	if($("#emailcode").val()==ck){
    // 		return true;
    // 	}
    // });

    // 验证密码
    $.validator.addMethod("chkpassword", function (value) {
        var pwdReg = /[^\u4e00-\u9fa5]+/;
        return pwdReg.test(value);
    });

    regfrom.on('keyup', '#password', function (event) {
        // 密码，昵称去空格
        var myThis = $(this);
        myThis.val(del(myThis.val()));

        // 密码强度验证
        var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{6,}).*", "g");

        if (false == enoughRegex.test($(this).val())) {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass(' pw-defule');
            //密码小于六位的时候，密码强度图片都为灰色 
        } else if (strongRegex.test($(this).val())) {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass(' pw-strong');
            //密码为八位及以上并且大小写字母数字特殊字符4项都包括,强度最强 
        } else if (mediumRegex.test($(this).val())) {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass(' pw-medium');
            //密码为七位及以上并且字母、数字、特殊字符三项中有两项，强度是中等 
        } else {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass('pw-weak');
            //如果密码为6为及以下，就算字母、数字、特殊字符三项都包括，强度也是弱的 
        }
        return true;
    });

    // 验证营业执照
    $.validator.addMethod("chklicense", function (value) {
        var filepath = $("#license").val();

        //获得上传文件名
        var fileArr = filepath.split("\\");
        var fileTArr = fileArr[fileArr.length - 1].toLowerCase().split(".");
        var filetype = fileTArr[fileTArr.length - 1];
        //切割出后缀文件名
        if (filetype != "jpg" && filetype != "png" && filetype != "jpeg" && filetype != "bmp" && filetype != "gif") {
            return false;
        } else {
            return true;
        }
    });
    // 验证营业执照文件大小
    $.validator.addMethod("chkpicsize", function (value, element) {
        if (window.ActiveXObject || "ActiveXObject" in window) {
            var filesize = $("#license").fileSize;//文件大小
            var maxSize = 5 * 1024 * 1024;
            if (filesize > maxSize) {
                return false;
            } else {
                return true;
            }
        } else {
            var fileSize = element.files[0].size;
            var maxSize = 5 * 1024 * 1024;
            if (fileSize > maxSize) {
                return false;
            } else {
                return true;
            }
        }
    });

    //验证统一社会信用代码
    $.validator.addMethod("chkcrecode", function (value) {
        var crecodeReg = /^[0-9A-Z]{18}$/;
        return crecodeReg.test(value);
    });

    //验证固定电话
    $.validator.addMethod("chktel", function (value) {
        if ($("#tel").val() == '') {
            return true
        } else {
            var telReg = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;
            return telReg.test(value);
        }
    });

    $("#regfrom").validate({
        rules: {
            username: {
                required: true,
                minlength: 1,
                maxlength: 12,
                chkusername: true
            },
            phone: {
                required: true,
                chkphone: true,
                remote: {
                    url: $("#checkphoneurl").val(),
                    type: "Post",
                    async: false,
                    data: {
                        phone: function () {
                            return $("#phone").val();
                        }
                    },
                    dataType: "json"
                }
            },
            yzcode: {
                required: true,
                chkyzcode: true,
                remote: {
                    url: $("#checkphoneurl").val(),
                    type: "Post",
                    async: false,
                    data: {
                        yzcode: function () {
                            return $("#yzcode").val();
                        }
                    },
                    dataType: "json"
                }
                // yzcodeck: true
            },
            password: {
                required: true,
                minlength: 6,
                maxlength: 12,
                chkpassword: true
            },
            repassword: {
                required: true,
                equalTo: "#password"
            },
            company: {
                required: true
            },
            license: {
                required: true,
                chklicense: true,
                chkpicsize: true
            },
            crecode: {
                required: true,
                chkcrecode: true
            },
            email: {
                required: true,
                email: true,
                async: false,
                remote: {
                    url: $("#checkemailurl").val(),
                    type: "Post",
                    data: {
                        email: function () {
                            return $("#email").val();
                        }
                    },
                    dataType: "json"
                }
            },
            emailcode: {
                required: true,
                chkemailcode: true,
                remote: {
                    url: $("#checkemailurl").val(),
                    type: "Post",
                    data: {
                        emailcode: function () {
                            return $("#emailcode").val();
                        }
                    },
                    dataType: "json"
                }
                // emailcodeck: true
            },
            tel: {
                chktel: true
            },
            agree_tk: {
                required: true
            }
        },
        messages: {
            username: {
                required: '请输入昵称',
                minlength: '至少输入1位字符',
                maxlength: '最多12位字符',
                chkusername: '请输入1-12位字符'
            },
            phone: {
                required: '请输入11位手机号码',
                chkphone: '手机号码不正确',
                remote: '手机号码已存在'
            },
            yzcode: {
                required: '请输入短信验证码',
                chkyzcode: '验证码为6位数字',
                remote: '请输入正确的短信验证码'
                        // yzcodeck:'请输入正确的短信验证码'
            },
            password: {
                required: '请输入密码',
                minlength: '至少输入6位非中文密码',
                maxlength: '最多12位非中文密码',
                chkpassword: '请输入6-12位非中文密码'
            },
            repassword: {
                required: '请再次输入密码',
                equalTo: "两次密码输入不一致"
            },
            company: {
                required: '请输入企业或公司名称'
            },
            license: {
                required: '请上传营业执照',
                chklicense: '请上传格式为jpg、jpeg、png、bmp、gif的图片',
                chkpicsize: '请上传大小在5M一下的图片'
            },
            crecode: {
                required: '请输入营业执照上统一社会信用代码',
                chkcrecode: '请输入18位数字或大写字母组成的统一社会信用代码'
            },
            email: {
                required: '请输入邮箱',
                email: '邮箱地址不正确',
                remote: '邮箱已存在'
            },
            emailcode: {
                required: '请输入邮箱验证码',
                chkemailcode: '验证码为6位数字',
                remote: '请输入正确的邮箱验证码'
                        // emailcodeck:'请输入正确的邮箱验证码'
            },
            tel: {
                chktel: '请输入正确的固定电话'
            },
            agree_tk: {
                required: '您还未接受《服务条款》'
            }
        },
        focusInvalid: false,
        onkeyup: false
    });

    $(".agree").click(function (event) {
        if ($(this).is(':checked')) {
            $(this).parent('.u-checkbox').addClass('u-checkbox-selected');
        } else {
            $(this).parent('.u-checkbox').removeClass('u-checkbox-selected');
        }
    })
})


// 短信验证计时
var InterValObj; //timer变量，控制时间
var count = 5; //间隔函数，1秒执行
var curCount;//当前剩余秒数

function sendMessage() {
    if ($("#regfrom").validate().element($("#phone"))) {
        curCount = count;
        //设置button效果，开始计时
        $(".js_yzcode").attr("disabled", "true");
        $(".js_yzcode").text(curCount + "S");
        $(".js_yzcode").css("background", "#ccc");
        InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器，1秒执行一次
        //向后台发送处理数据
        $.ajax({
            type: "POST", //用POST方式传输
            dataType: "json", //数据格式:JSON
            url: $('#sendphoneurl').val(), //目标地址
            data: {phone: $("#phone").val()},
        });
    }
}

//timer处理函数
function SetRemainTime() {
    if (curCount == 0) {
        window.clearInterval(InterValObj);//停止计时器
        $(".js_yzcode").removeAttr("disabled");//启用按钮
        $(".js_yzcode").text("重新发送");
        $(".js_yzcode").css("background", "#f60");
    } else {
        curCount--;
        $(".js_yzcode").text(curCount + "S");
    }
}

function sendMessage2() {
    if ($("#regfrom").validate().element($("#email"))) {
        curCount = count;
//设置button效果，开始计时
        $(".js_mailcode").attr("disabled", "true");
        $(".js_mailcode").text(curCount + "S");
        $(".js_mailcode").css("background", "#ccc");
        InterValObj = window.setInterval(SetRemainTime2, 1000); //启动计时器，1秒执行一次
        //向后台发送处理数据
        $.ajax({
            type: "POST", //用POST方式传输
            dataType: "json", //数据格式:JSON
            url: $('#sendemailurl').val(), //目标地址
            data: {email: $("#email").val()}
        });
    }
}

//timer处理函数
function SetRemainTime2(obj) {
    if (curCount == 0) {
        window.clearInterval(InterValObj);//停止计时器
        $(".js_mailcode").removeAttr("disabled");//启用按钮
        $(".js_mailcode").text("重新发送");
        $(".js_mailcode").css("background", "#f60");
    } else {
        curCount--;
        $(".js_mailcode").text(curCount + "S");
    }
}